package com.flyco.modules.returns.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import com.flyco.poi.excel.annotation.Excel;

/**
 * @Description: 申请退换货明细
 * @Author: flyco
 * @Date: 2023-08-01
 * @Version: V1.0
 */
@Data
@TableName("oms_order_return_item")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "oms_order_return_item对象", description = "申请退换货明细")
public class OmsOrderReturnItem implements Serializable {

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 退货申请id
     */
    @Excel(name = "退货申请id", width = 15)
    @ApiModelProperty(value = "退货申请id")
    private Long returnApplyId;
    /**
     * 退货商品id
     */
    @Excel(name = "退货商品id", width = 15)
    @ApiModelProperty(value = "退货商品id")
    private Long productId;
    /**
     * 商品货号
     */
    @Excel(name = "商品货号", width = 15)
    @ApiModelProperty(value = "商品货号")
    private String productSn;
    /**
     * 商品图片
     */
    @Excel(name = "商品图片", width = 15)
    @ApiModelProperty(value = "商品图片")
    private String productPic;
    /**
     * 商品名称
     */
    @Excel(name = "商品名称", width = 15)
    @ApiModelProperty(value = "商品名称")
    private String productName;
    /**
     * 退货数量
     */
    @Excel(name = "退货数量", width = 15)
    @ApiModelProperty(value = "退货数量")
    private Integer productCount;
    /**
     * 商品sku条码
     */
    @Excel(name = "商品sku条码", width = 15)
    @ApiModelProperty(value = "商品sku条码")
    private String productSkuCode;
    /**
     * 商品目前的单价
     */
    @Excel(name = "商品目前的单价", width = 15)
    @ApiModelProperty(value = "商品目前的单价")
    private java.math.BigDecimal price;
    /**
     * 商品目前的总金额
     */
    @Excel(name = "商品目前的总金额", width = 15)
    @ApiModelProperty(value = "商品目前的总金额")
    private java.math.BigDecimal totalAmount;
    /**
     * 对应的原单id
     */
    @Excel(name = "对应的原单id", width = 15)
    @ApiModelProperty(value = "对应的原单id")
    private String orderId;
    /**
     * 对应的原单明细id
     */
    @Excel(name = "对应的原单明细id", width = 15)
    @ApiModelProperty(value = "对应的原单明细id")
    private Long orderItemId;

    //购买数量（换算成最小包装单位后的）
    private Integer minUnitQuantity;

    @Excel(name = "单位", width = 15)
    private String productUnit;

    private Integer productSkuSpec;

    private String productSkuUnit;

    @ApiModelProperty(value = "实际收到的货品数量（按瓶）")
    private Integer realUnitQuantity;

    @ApiModelProperty(value = "拒绝售后的货品数量（按瓶）")
    private Integer refuseUnitQuantity;

    @ApiModelProperty(value = "可再次利用的货品数量（按瓶）返仓")
    private Integer reuseUnitQuantity;

    @ApiModelProperty(value = "报废的货品数量（按瓶）")
    private Integer uselessUnitQuantity;

    @ApiModelProperty(value = "小计金额(报废+返仓)")
    private BigDecimal totalRealAmount;

    @ApiModelProperty(value = "退换货凭证")
    private String returnCertificate;

    @ApiModelProperty(value = "退货原因")
    private String reason;

    @ApiModelProperty(value = "商品一箱的价格")
    private BigDecimal boxPrice;

    @ApiModelProperty(value = "批次号对象")
    private String batchNoJson;
}
